The invention relates to information distribution systems and, more particularly, the invention relates to a method of generating information sub-streams for use in information distribution systems.
In several communications systems the data to be transmitted is compressed so that the available bandwidth is used more efficiently. For example, the Moving Pictures Experts Group (MPEG) has promulgated several standards relating to digital data delivery systems. The first, known as MPEG-1 refers to ISO/IEC standards 11172 and is incorporated herein by reference. The second, known as MPEG-2, refers to ISO/IEC standards 13818 and is incorporated herein by reference. A compressed digital video system is described in the Advanced Television Systems Committee (ATSC) digital television standard document A/53, and is incorporated herein by reference.
The above-referenced standards describe data processing and manipulation techniques that are well suited to the compression and delivery of video, audio and other information using fixed or variable length digital communications systems. In particular, the above-referenced standards, and other xe2x80x9cMPEG-likexe2x80x9d standards and techniques, compress, illustratively, video information using intra-frame coding techniques (such as run-length coding, Huffman coding and the like) and inter-frame coding techniques (such as forward and backward predictive coding, motion compensation and the like). Specifically, in the case of video processing systems, MPEG and MPEG-like video processing systems are characterized by prediction-based compression encoding of video frames with or without intra- and/or inter-frame motion compensation encoding.
Information distribution systems utilizing information streams conforming to the above standards or subsets of the above standards are known. For example, an interactive digital video on demand (VOD) service known as the OnSet(trademark) system is manufactured by DIVA Systems Corporation of Menlo Park, Calif. The OnSet(trademark) system distributes audio-visual information to individual subscribers utilizing MPEG-like information streams. The OnSet(trademark) system also allows subscribers to interactively control the delivery of audio-visual information using consumer-friendly commands, such as fast-forward (FF), rewind (REW), pause (PAUSE), play (PLAY) and the like.
The OnSet(trademark) system utilizes additional information streams to provide FF and REW functionality to subscribers. Specifically, the OnSet(trademark) system utilizes a main information stream to carry a desired audio-visual program. Additionally, the OnSet(trademark) system utilizes first and second information sub-streams for carrying respective FF and REW versions of at least the video portion of the desired audio-visual program. The FF and REW streams associated with an audio-visual program are accessible to a subscriber along with the audio-visual program. By activating a FF or REW mode of operation, the subscriber""s set top terminal will begin decoding, respectively, the FF or REW stream. In this manner, the OnSet(trademark) system provides FF and REW control features to a subscriber.
One technique for providing FF or REW capability to a subscriber is to simply increase the bandwidth allocation of a channel providing a program to the subscriber. This technique disadvantageously increases the cost of delivering the program to the subscriber by inefficiently using the available bandwidth and by forcing the subscriber""s equipment to perform a FF or REW frame selection process. Thus, to reduce subscriber-side processing requirements, it is desirable to process program material at the server side to generate frame-reduced (i.e., temporally decimated) information streams suitable for use as FF or REW streams.
A typical technique for generating FF and REW streams comprises decoding an MPEG or MPEG-like video information stream to produce an uncompressed, baseband format video signal, such as a composite or component video signal. The baseband format video signal is then coupled to a frame or field counter which identifies every Nth video frame (or pair of fields) by, e.g., counting the number of horizontal or vertical synchronization pulses in the signal. Each Nth video frame (or pair of fields) is then encoded in an MPEG-like manner and stored on a video server for subsequent delivery to a subscriber. Unfortunately, this technique for generating FF and REW streams is very slow and computationally intensive.
A real-time FF display technique comprises decoding, at a subscriber""s decoder, only non-predicted video frames (i.e., only intra-frame encoded video frames) within a main video information stream. That is, the decoder processes an MPEG or MPEG-like video information stream by ignoring all forward-predictive coded video frames (i.e., P-frames) and bi-directionally-predictive coded video frames (i.e., B-frames). The resulting decoded video stream will comprise only those video frames associated with intra-coded video frames (i.e., I-frames). Thus, in the case of an MPEG or MPEG-like video information stream having, e.g., a repeating 15 frame group of picture (GOP) format including one I-frame, the resulting processed video stream will include only one fifteenth of the video frames associated with the original, unprocessed MPEG or MPEG-like video information stream. Unfortunately, in the case of a variable GOP structure, or in the case of a GOP structure allowing for a large number of non-I-frame video frames, this processing technique provides unsatisfactory results. Specifically, in these two cases, this real-time subscriber-side processing technique provides a resulting processed stream containing too little video information or providing a xe2x80x9cjerkyxe2x80x9d FF or REW display.
Therefore, a need exists in the art for a rapid and computationally efficient method for generating FF and REW streams in particular, and information sub-streams in general, that addresses the problems associated with the above-described techniques.
The invention is a method for processing an information stream comprising a plurality of compressed information frames to produce an information sub-stream having a reduced number of information frames.
Specifically, a method for processing a compressed information stream to produce one or more compressed information sub-streams comprises the steps of: (a) decoding a sub-sample of the compressed information stream to produce an uncompressed information sub-stream; (b) storing, in a memory, the uncompressed information sub-stream; (c) retrieving, from the memory, the stored uncompressed information sub-stream; and (d) encoding, using a compression encoder, the retrieved uncompressed information frames to produce an encoded information sub-stream.
In another embodiment, the above method includes several modes of operation: in a fast-forward (FF) mode of operation, the stored uncompressed information sub-stream is retrieved in a standard temporal order and encoded to produce an encoded FF information sub-stream; and in a fast-rewind (REW) mode of operation, the stored uncompressed information sub-stream is retrieved in a reverse temporal order and encoded to produce an encoded REW information sub-stream.
In another embodiment, the above method includes the step of storing, in the fast-forward (FF) mode of operation and the fast-rewind (REW) mode of operation, respectively, the encoded FF information sub-stream and the encoded REW information sub-stream in a mass storage unit.
In yet another embodiment of the above method, the compressed information stream comprises a plurality of compressed information frames, and the step of decoding a sub-sample of the compressed information stream comprises the steps of: (1) identifying an Nth compressed information frame in the compressed information stream, where N is an integer; (2) decoding the identified Nth compressed information frame to produce an uncompressed information frame; and (3) repeating steps (1) and (2) until each of the Nth compressed information frames in the compressed information stream has been processed.
In still another embodiment of the above method, the step of identifying further comprises the steps of: determining if the identified information frame is a non-predicted information frame or a predicted information frame; and in the case of the identified information frame being a predicted information frame of a first type: examining each of up to M compressed information frames subsequent or prior to the identified information frame to identify a one compressed information frame that is not a predicted information frame of the first type, where M is an integer; and substituting, for decoding purposes, the identified one information frame for the identified information frame.
An apparatus according to the invention for processing an information stream to produce an information sub-stream comprises a decoder, for decoding the information frames coupled to the frame controller output and producing a frame-decoded information stream therefrom; and the decoder further comprises a parser, for examining a header portion of at least every Nth compressed information frame in the information stream, and for generating an indicium of a compression type associated with the examined frame; and a frame controller, coupled to the parser, for causing the decoding of every Nth information frame if the Nth information frame is of a desired compression type, where N is an integer.